package com.example.kafka.admin;

import org.apache.kafka.clients.admin.Admin;
import org.apache.kafka.clients.admin.AdminClientConfig;
import org.apache.kafka.clients.admin.CreateTopicsResult;
import org.apache.kafka.clients.admin.NewTopic;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author cy
 * @create 2025-03-24 13:52
 */
public class AdminTopicTest {
    public static void main(String[] args) {
        Map<String, Object> confMap = new HashMap<>();
        confMap.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");

        // 管理员对象
        final Admin admin = Admin.create(confMap);

        // 构建主题，三个参数：
        // 第一个参数表示主题的名称；
        // 第二个参数表示主题分区的数量；
        // 第三个参数表示主题分区副本的数量；
        String topicName = "test3";
        int partitionCount = 1;
        short replicationCount = 1;
        NewTopic topic1 = new NewTopic(topicName, partitionCount, replicationCount);
        Map<Integer, List<Integer>> map = new HashMap<>();
        map.put(0, Arrays.asList(3,1));

        // 创建主题
        final CreateTopicsResult result = admin.createTopics(Arrays.asList(topic1));

        // 关闭管理者对象
        admin.close();
    }
}
